Systems which provide geographic information services to users typically require constant updating in order to maintain usefulness and accuracy. Geographic systems may continuously update the features which are used to describe or generate a particular view of the world (map or map information), for example, information regarding the course and location of roadways, business information, size and location of buildings and other structures, etc. In addition, these features may be associated with any number of “references” which associate or link two or more features together. In other words, a reference may describe an instance of a relation between the two features.
For example, a town (feature T) may be contained within a state (feature S). The relation is between S and T (“is contained within”), and the reference is therefore an instance of two features (S and T) involved in the relation. Thus, changes or updates to feature S may have an effect on feature T. In another example, updating road data on one or two segments of a road network will undoubtedly affect the attributes of the surrounding segments. For this reason, road data may be considered highly “dependent” and thus may have a large number of references. Accordingly, maintaining consistent views of the world (maps and map information) not only involves updating the features themselves but also maintaining the consistencies of any references.
Presently, updating large geographic information systems may involve either completely locking users out during an updating period or performing an update or entering changes at a time when users are less likely to request information. These systems may operate under the assumption that all of the data is highly dependent (there are many references) and must be delivered in bulk. As a result, the entire world of data may need to be re-written periodically, such as every week, in order to maintain consistency. However, not all edits may affect the consistency of the data. For example, edits to a telephone number or the operating hours of a business may be completely independent of any other features, and thus may be allowed independent of other changes in the system. Accordingly, bulk updating all of the information periodically may delay data updates and requires enormous processing power.
Even using the total bulk updating model, it may be difficult to merge highly dependent data from multiple sources. Some systems may partition the world based on the feature type and country. Highly dependent types, such as roads, may only be taken from a single source per country which may present problems when managing cross-country references in these data sources, for example, when attempting to connect road networks across borders.
In addition to editing data, these services must also validate the data. Generally, these services must check each edited attribute, one by one, to ensure that the data is consistent. For example, where feature A includes references to features B and C, the server may retrieve both features B and C in order to ensure that the changes to feature A do not invalidate some parameter associated with features B or C. Calling each of the referenced features is a slow process and introduces the risk of collisions between updating a feature and calling the same feature to validate an edit to another feature. Thus, this method may result in a significant investment in processing power and time required to complete the validation.